
                           
                                
                                              
                                     
                                   

                              flat assembler 1.64
                              㠫 ணࠬ


ঠ


 1  

      1.1   
      1.1.1  ⥬ ॡ
      1.1.2    ஬   ப
      1.1.3  饭 
      1.1.4  ଠ 뢮

      1.2  ⠪ ᥬ
      1.2.1  ⠪ 権
      1.2.2  ᠭ 
      1.2.3  ⠭  ⪨
      1.2.4  ᫮ ࠦ
      1.2.5  室  맮
      1.2.6  ⠭ ࠧ

 2 ᠭ 権

      2.2  ४⨢ ࠢ
      2.2.1  ᫮ ᥬ஢
      2.2.2  ७  権
      2.2.3   ࠭⢠
      2.2.4  㣨 ४⨢
      2.2.5  ⢥ 室

      2.3  ४⨢ ९
      2.3.1  祭 䠩-室
      2.3.2   ⠭
      2.3.3  ந樨
      2.3.4  
      2.3.5  ७ ந権
      2.3.6  ᫮ ९ᨭ
      2.3.7  冷 ࠡ⪨

      2.4  ४⨢ ଠ஢
      2.4.1  MZ
      2.4.2  PE
      2.4.3  COFF
      2.4.4  ELF


 1  


  ᮤন   ଠ,   , ⮡  ᯮ짮 flat assembler. ᫨   㦥   ணࠬ஢  ᥬ,  筮     । ᯮ짮 ⮣ .


1.1   

Flat assembler -    ᥬ  ஢  ⥪ன 86,   ⢥ 室  ⨬樨 ࠧ ᣥ஢ 設 .  ᯮᮡ ᪮஢ ᠬ ᥡ   ᨨ  ࠧ 樮 ⥬.  ᨨ ᮧ  ᯮ짮   c⥬  ப   饭    ࠧ.

1.1.1  ⥬ ॡ

 ࠡ  ᨩ ॡ 32-   ⥪ன 86 (  80386),  ⠪   ࠡ뢠 ணࠬ  16- ஢  ⥪ன 86. DOS- ॡ , ᮢ⨬  MS DOS 2.0, Windows- ॡ ᮫ Win32, ᮢ⨬  ᨥ 3.1.


1.1.2    ஬   ப

 ᪠ FASM   ப     ࠬ:  -    䠩  , ன -   䠩- ଠ樨. ᫨ ன ࠬ  ,  䠩 뢮 㤥 ᮧ ⮬᪨. ᫥  ⪮ ଠ樨   ணࠬ   ᨨ,  ⠥ ଠ  䠩    ᪮ . ᫥ ᯥ譮 樨 FASM  ᣥ஢   䠩-  뢥  ଠ  襭 ;  ⨢ 砥  뢥 ଠ  ࢮ 訡.
    室   ⥪⮢ 䠩    ᮧ   ⥪⮢ ।.  ப ᪠   ⠭ DOS,   ⠭ Unix, ⠡樨 ࠡ뢠  ஡.
      ப  ⠪    "-m",  ன  ᫥ ᫮, 㪠뢠饥, ᪮쪮     ᨬ쭮 ⢮ flat assembler'.  砥 DOS-ᨨ   ࠭稢  ᯮ짮 ७ .  "-p"  ᫥騬   ᫮   ᯮ짮  ⮣, ⮡ ࠭ ⢮ 室, ஥ 㤥  ᥬ. ᫨     ᮧ  ᫮ 室, ᥬ஢ ४  ᮮ饭  訡. ᨬ쭮 祭 ⮩ 樨 ࠢ 65536,  祭  㬮砭 ࠢ 100.
      権, 뢠 ⢨  室  ,  室 flat assembler' ଠ  ᮤঠ  室 . ਬ,  ⠭ ଠ 䠩- ᯮ ४⨢ "format"  砫 .


1.1.3  饭 

 뫮 ᪠ , ᫥ ᯥ譮 樨 FASM 뢮  ࠭ ᢮  த ࠡ.  砥 ଠ  ⮬, ᪮쪮 뫮 ᤥ 室, ᪮쪮 ६  﫮,  ᪮쪮  ᠭ  䠩-.
     ਬ ⠪ ᢮:

flat assembler  version 1.64
38 passes, 5.3 seconds, 77824 bytes.

 砥 訡  ६ 樨, ணࠬ 뢥  ࠭ ᮮ饭  訡. ਬ,      䠩 ,   ᫥饥 ᮮ饭:

flat assembler  version 1.64
error: source file not found.

᫨ 訡 易  ।  , 㤥 뢥 ப,   맢. , ⮡     訡, 㤥   ⮩ ப  , ਬ:

flat assembler  version 1.64
example.asm [3]:
        mob     ax,1
error: illegal instruction.

 ,   쥩 ப 䠩 "example.asm"  ⨫  . ᫨ ப, 맢 訡, ᮤন , ⠪ 㤥 뢥 ப  㫨஢ ,  ᣥ஢ 訡 :

flat assembler  version 1.64
example.asm [6]:
        stoschar 7
example.asm [3] stoschar [1]:
        mob     al,char
error: illegal instruction.

 ,    ⮩ ப 䠩 "example.asm" ᮧ    ࢮ ப ᢮ 㫨஢.


1.1.4  ଠ 뢮

 㬮砭, ᫨  室  ४⨢ "format", flat assembler ࠢ ᣥ஢   뢮, ᮧ ⠪ ࠧ ⮩  䠩.  㬮砭  ᮧ 16- ,   ᥣ  ४   32-  16- ०, ᯮ ४⨢ "use32"  "use16". 롮  ଠ⮢ 䠩- ⮬᪨ ४砥   32- ०. ஡ ⠩  ଠ,   ,  2.4.
     ᣥ஢   䠩- ᥣ   ⮬  浪,   ᠭ  室.


1.2  ⠪ ᥬ

ଠ,  , ।祭  ࠧ ணࠬ⠬,  ० ᯮ짮 㣨  ᥬ. ᫨  箪, ⠩ 祡  ணࠬ஢  ᥬ.
    Flat assembler  㬮砭 ᯮ ⥫᪨ ᨭ⠪ ᥬ 権,    । , ᯮ  ९ (  ᨬ ⠭).  ⠪  ᮡ⢥  ४⨢ - 権  .
     ᨬ, ।  , ⢨⥫  ॣ.


1.2.1  ⠪ 権

樨  ᥬ ࠧ ࠧ뢠 ப,     ᯮ   ப. ᫨ ப ᮤন   ⮩,   祪  ⮩, 祭  窨, ⮪  ⠥ ਥ    ந. ᫨ ப ᮤন ᨬ "\"(  殢 窠  ⮩  ਩    ᫥),  ᫥ ப ਪ९  ⮩ 窥. ᫥ ᨬ "\" ப   ᮤঠ 祣, ஬ ਥ, ᫥  窮  ⮩.
     ப   -  ᫥⥫쭮 ⤥ ।⮢,    ਭ    ० ⨯.  ⨯ -   ᨬ, 묨  ᯥ樠 ,  ࠪ ⤥쭮,  ᫨  ⤥   㣨 ᨬ.   "+-*/=<>()[]{}:,|&~#`" -   ᨬ. ᫥⥫쭮 㣨 , ⤥  ⠫  ஡,   ᨬ,  ᨬ. ᫨   ⠪ ᨬ   ୠ 窠,  ꥤ  ᫥⥫쭮 ᨬ,  ᯥ樠, ᫥  ,  ப.   稢 ⠪  ,  稭 (  ୮ 窮).  ᫨   窨  (   ),  ⠪   ப   த. , ⫨   ᨬ  ப, 祭  窨,  ᯮ짮  , ⮬  ⠪ 뢠 ᨬ .
      ⮨    ࠧ筮 ᫠ ࠭, ࠧ 묨. ࠭   ॣ, ।⢥ 祭    ,  ⠪  ।७ ஬ ࠧ, ⮡ ।    ࠧ (⠡ 1.1).   ॣ஢     ⠡ 1.2,  ࠧ    . ।⢥ 祭   ।  ᫮ 祭.
    ᫨ ࠭ -    ,    (⠪  ᫮ ࠦ,    ᮤঠ ॣ)   祭  ࠤ ᪮  ।७ ஬ "ptr". ਬ,  "mov eax,3"  ᫮ 3  ॣ EAX,   "mov eax,[7]"  32-⭮ 祭   7  EAX,   "mov byte [7],3"  ᫮ 3     7,     ⠪: "mov byte ptr 7,3".  ⮣, ⮡ ⠭,  ᥣ ॣ 㤥 ᯮ짮  樨, 㦭 ⠢    稥 । ᮬ   ᪮  ᫥  "ptr".

    1.1   ஢
  Ŀ
        
  ͵
   byte      8     1     
   word      16    2     
   dword     32    4     
   fword     48    6     
   pword     48    6     
   qword     64    8     
   tbyte     80    10    
   tword     80    10    
   dqword    128   16    
  

    1.2  
  Ŀ
                                                          
  ͵
            8     al    cl    dl    bl    ah    ch    dh    bh   
   General  16    ax    cx    dx    bx    sp    bp    si    di   
            32    eax   ecx   edx   ebx   esp   ebp   esi   edi  
  Ĵ
   Segment  16    es    cs    ss    ds    fs    gs               
  Ĵ
   Control  32    cr0         cr2   cr3   cr4                    
  Ĵ
   Debug    32    dr0   dr1   dr2   dr3               dr6   dr7  
  Ĵ
   FPU      80    st0   st1   st2   st3   st4   st5   st6   st7  
  Ĵ
   MMX      64    mm0   mm1   mm2   mm3   mm4   mm5   mm6   mm7  
  Ĵ
   SSE      128   xmm0  xmm1  xmm2  xmm3  xmm4  xmm5  xmm6  xmm7 
  


1.2.2  ᠭ 

⮡    १ࢨ஢   , ᯮ   ४⨢, ᫥  ⠡ 1.3.  ४⨢ ᠭ   ᫥   ᪮쪮 稫 祭, ࠧ 묨.  ࠦ । 祭  ⥩ ⮢ , ࠧ    ⮣,  ४⨢ ᯮ. ਬ "db 1,2,3" 뢠    祭ﬨ 1, 2  3 ᮮ⢥⢥.
    ४⨢ "du"  "db" ⠪ ন ப  , 祭  窨,   ஢  ᫥⥫쭮 ⮢, ᫨ ᯮ짮 ४⨢ "db",   ᫥⥫쭮 ᫮  㫥 孨 ⮬, ᫨ ᯮ짮 ४⨢ "du". ਬ, "db 'abc'" ।    祭ﬨ 61, 62  63.
    ४⨢ "dp"   ᨭ "df" ᪠, ⮡ 祭 﫨   ᫮ ࠦ, ࠧ 稥,  ࢮ 祭 -  孥 ᫮,  ஥ -    ᫮ 祭 쭥 㪠⥫.  "dd" ᪠ ⠪ 㪠⥫, 騥   ᫮, ࠧ 稥,  "dt" ᪠ ᫮  ⢥୮ ᫮, ࠧ 稥, ⢥୮ ᫮  . ४⨢ "dt"   ࠬ஬ ᪠ ⮫쪮 祭  饩 窮  ᮧ   FPU-ଠ  ७ 筮.
     襯᫥ ४⨢ ন ᯮ짮 ᯥ樠쭮  "dup"  ᮦ   祭. ⢮ 㡫⮢   । ⨬ ஬,   祭   ᫥ -     楯 祭, ࠧ 묨,   楯   祭  ᪮, ਬ "db 5 dup (1,2)" ।    ᫥⥫쭮   ⮢.
    "file" -  ᯥ樠쭠 ४⨢   ᨭ⠪   ࠧ.  ४⨢ 砥 楯 ⮢  䠩.  ⢥ ࠬ      窠  䠩, , 樮쭮, 稥  ᫮ ࠦ, 㪠뢠饥 砫 楯窨 ⮢, , ⠪ 樮쭮,   ᫮ ࠦ, ।饥 ⢮ ⮢  ⮩ 楯窥 (᫨  ࠬ  ।,   祭     䠩). ਬ, "file 'data.bin'"   䠩   ,  "file 'data.bin':10h,4"  ⮫쪮  , 稭  ᬥ饭 10h.
     ४⨢ १ࢨ஢   ᫥  ᫮ ࠦ, 祭 ண । ⢮ १ࢨ㥬 祥 ⠭ ࠧ.  ४⨢ ᠭ  ⠪ ন 祭 "?", ஥ ,  ⮩ 祩    ᢮ - 祭. 䥪  ⮩ ४⨢ ⠪ ,   ४⨢ १ࢨ஢ . 樠஢     祭  䠩 뢮, , ⠪ ࠧ,  祭 ᥣ   묨.

    1.3  ४⨢ 
  Ŀ
      ।  ࢨ஢ 
   ()                  
  ͵
   1           db             rb        
               file                     
  Ĵ
   2           dw             rw        
               du                       
  Ĵ
   4           dd             rd        
  Ĵ
   6           dp             rp        
               df             rf        
  Ĵ
   8           dq             rq        
  Ĵ
   10          dt             rt        
  


1.2.3  ⠭  ⪨

 ᫮ ࠦ  ᥫ  ⠪  ᯮ짮 ⠭  ⪨. ⮡  , ᯮ ᯥ樠 ४⨢.  ⪠   । ⮫쪮    㤥 㯭     ( । ⮬,   뫠 ।). ⠭   ८।  ࠧ,   ⮬ 砥  㤥 㯭 ⮫쪮 ᫥ ᢮ 祭  ᥣ 㤥 ࠢ 祭  ᫥ । । ⮬,  ஬  ᯮ짮. ᫨ ⠭ ।  , , ⠪    ⪠, 㯭    .
    । ⠭ ⮨   ⠭,  "="  ᫮ ࠦ, ஥ ᫥ ᫥ ⠭ 祭 ⠭.  祭 ᥣ     ६,   । ⠭. ਬ,   ४⨢ "count = 17"   । ⠭ "count"  ᫥ ᯮ짮    ᥬ, ⠪  "mov cx,count" -  ॢ  "mov cx,17"  ६  樨.
     ࠧ ᯮᮡ । ⮪. ⥩訩   - 稥 ᫥  ⪨.  ⮩ ४⨢  ⮩  ப   ᫥ 㣠 .  । , 祭 ன ࠢ ᬥ饭 窨,  ன  ।.  ⮤ 筮 ᯮ, ⮡    . 㣮 ᯮᮡ -  ᫥   ⪨ ( ) - ४⨢ ᠭ . ⪥ ᢠ 祭  砫 ।  ४⨢    ஬  ⪠    ࠧ஬ 祩,  ४⨢  ⠡ 1.3.
    ⪠   ࠡ⠭  ⠭  祭, ࠢ ᬥ饭 祭   . ਬ, ᫨  । , ᯮ 祭 ४⨢ "char db 224",  ⮣, ⮡   砫    ॣ BX,  㦭 ᯮ짮  "mov bx,char",   ⮣, ⮡   ॣ DL 祭 ,   뫠 "char", 㦭 ᯮ짮 "mov dl,[char]" ( "mov dl,ptr char"). ᫨  ⠥ ᥬ஢ "mov ax,[char]", FASM 뤠 訡, ⠪   ࠢ ࠧ ࠭,    ࠢ.   ਭ㤨⥫쭮 ஠ᥬ஢  ,  ࠧ ࠭: "mov ax, word [char]",  ,    ⠥  , 稭   "char", ⮣    ।   .
    ᫥  ᠬ  ᯮᮡ  ⮪ -  ᯮ짮 ४⨢ "label".  ⮩ ४⨢  ᫥  ⪨, , 樮쭮, ࠧ  ( । 稥),  , ⠪ 樮쭮,  "at"  ᫮ ࠦ, ।饥 ,    ⪠  뫠. ਬ, "label wchar word at char" ।    16-    "char".   "mov ax,[wchar]" ᫥ 樨 㤥 룫拉 ⠪ ,  "mov ax,word [char]". ᫨   㪠, ४⨢ "label" 㤥 뫠  ⥪騩 .  ࠧ, "mov [wchar],57568" ᪮  , ⮣  "mov [char],224" ᪮      .
    ⪠,  ன 稭  窨, ࠡ뢠  쭠,    ਪ९   ᫥ 쭮 ⪨ ( , 稭饬  祣 㣮, ஬ 窨)  ᮧ   ⮩ ⪨. ,   ᯮ짮 ⪮  (稭饥  窨)  㣮 । ᫥饩 쭮 ⪮,   㣨   ਤ 짮  . ⪨, 稭騥   祪 - ᪫祭.   ᢮⢠ ,   ᮧ  䨪   ⮪.
    "@@" 砥  ,   ।  ⢮ ࠧ.  "@b" (  "@r") 뫠   ।  ,  ᨬ "@f" 뫠   ᫥   .  ᯥ樠 ᨬ ⢨⥫  ॣ.


1.2.4  ᫮ ࠦ

 । ਬ  ᫮ ࠦ 뫨 묨 ᫠, ⠭⠬  ⪠.      ᫮묨, ᯮ짮 䬥᪨  ᪨ ॠ  ᫥  ६ 樨.      祭ﬨ ਮ ᫥  ⠡ 1.4.
樨  訬 ਮ⮬ 믮 묨,  , 筮,   ⠪ ࠧ ⢨, 稢   ࠦ  ᪮窨. "+", "-", "*"  "/" -  ⠭ 䬥᪨ 樨, "mod" 稫 ⮪   楫. "and", "or", "xor", "shl", "shr"  "not" ᮢ   祪 樨,   樨 ᥬ  ⠪  ﬨ. "rva" ࠪୠ ⮫쪮  ଠ 뢮 PE  ந ॢ饭   RVA.
    ᫠  ࠦ  㬮砭 ࠡ뢠  ,  ᫠   "b"  , 쬥 ᫠  稢  㪢 "o", ⭠   稠 ᨬ "0x" (  몥 C),  ᨬ "$" (  몥 Pascal)   稢 㪢 "h".  祭  窨 ப  祭  ࠦ 㤥 ஢  ᫮ -  ᨬ ⠭  騬 ⮬ ᫠. ᫮ ࠦ, ᯮ㥬  祭 ,  ⠪ ᮤঠ    ॣ஢, ᯮ㥬  樨,    ᫮  㬭  室騥 祭 ⠪,      ⥪ x86.
      ᪮쪮 ᯥ樠 ᨬ,    ᯮ짮  ᫮ ࠦ. ࢮ -  "$", ஥ ᥣ ࠢ 祭 ⥪饣 ᬥ饭, ⮣  "$$" ࠢ   ⥪饣  ᮢ. 騩 ᨬ - "%" -   ⥪饣    ,  ,  ᯮ짮  ᯥ樠 ४⨢ (ᬮ 2.2).   ᨬ "%t",  ᥣ ࠢ ⥪饩 ⬥⪥ ६.
     ᫥ ࠦ ⠪     祭  饩 窮 (flat assembler   ந  ६ 樨 樨  饩 窮)  筮 .  ᯮ ஬,  祭  ᮤঠ   㪢 "f",    ᥡ  ࠩ   ᨬ "."  "E". , "1.0", "1E0"  "1f" ।     祭  饩 窮,    "1" । 楫᫥ 祭.

    1.4  䬥᪨  ᪨   浪 ਮ
  Ŀ
   ਮ      
  ͵
   0          +  -         
  Ĵ
   1          *  /         
  Ĵ
   2          mod          
  Ĵ
   3          and  or  xor 
  Ĵ
   4          shl  shr     
  Ĵ
   5          not          
  Ĵ
   6          rva          
  


1.2.5  室  맮

࠭  室   맮  ।  ⮫쪮 ࠬ ࠧ,  ⠪   ஢, । ⨯ 室: "near"  "far". ਬ, ᫨ ᥬ  16-⭮ ०,  "jmp dword [0]" ⠭  室,  ᫨ ᥬ  32-⭮ ०,  ⠭  室. ⮡ ⠢   ࠡ뢠 -ࠧ, ᯮ  "jmp near dword [0]"  "jmp far dword [0]".
    ᫨ ࠭  室   祭, ᥬ, ᫨ , ᣥ 砩訩 ਠ ⮩ 樨 室 (  㤥 ᮧ 32-   16-⭮ ०  16-   32-⭮ ०, ᫨  ࠧ 筮   ।).   ࠧ   ⠢ ᥬ ᥣ ஢  ਠ (ਬ, "jmp word 0"  16-⭮ ०  "jmp dword 0"  32-⭮ ०)  ᥣ ᮧ ⪨ ਠ    訡,    (ਬ "jmp byte 0").


1.2.6  ⠭ ࠧ

᫨  ᯮ    ,  㬮砭 㤥 ஢ 砩 8-⭠ ଠ, ᫨ 祭    㦭 ,        ஢ "word"  "dword" । ᮬ   ᪮ ( ᫥  "ptr").  ࠧ饭  ࠧ ⠪   ᯮ짮  ⠭ ࠧ , ⫨筮  ࠧ, ⠭   ०  㬮砭.
    樨 "adc", "add", "and", "cmp", "or", "sbb", "sub"  "xor"   16-  32- ࠭  㬮砭   㪮祭 8-⭮ ଥ, ᫨ ன ࠭ -  ।⢥ 祭, ਬ  ।ᠭ 8- 祭.  ⠪    ࠬ "word"  "dword" । ⠪ 祭ﬨ. 室 ࠢ ਬ  樨 "imul"  ।⢥ 祭  ⢥ ᫥ ࠭.
    ।⢥ 祭  ࠭  樨 "push"   ࠧ,  㬮砭 ࠡ뢠  ᫮, ᫨ ᥬ 16-⭮ ०,    ᫮, ᫨ FASM  32-⭮ ०. ⪠ 8-⭠ ଠ ᯮ  ,  ࠧ "word"  "dword"  ⠢  "push"  ᣥ஢    ଥ.  "pushw"  "pushd" 㪠뢠 ᥬ ᣥ஢ 16-  32-   ਭ㦤  ᯮ짮   樨.


 2 ᠭ 権


  ᮤন ⠫ ଠ    ४⨢, ন FASM. ४⨢ । ⠭  ⮪ 㦥 ᠭ  1.2.3,  ⠫ ४⨢  ᠭ   ⮩ .


2.2  ४⨢ ࠢ

 ࠣ 뢠 ४⨢,  ࠢ ᮬ ᥬ஢.  ४⨢ 믮  ६ ᥬ஢    ⠪, ⮡   権 ᥬ஢ -ࠧ   ᥬ஢ .


2.2.1  ᫮ ᥬ஢

  ४⨢ "if"  ᥬ஢   ᥬ஢  権  ᨬ  믮 ᫮.    ᫥ ᪮ ࠦ, ।饥 ᫮. 樨  ᫥ ப ᥬ, ⮫쪮 ᫨  ᫮ 믮,   ய᪠. 樮쭠 ४⨢ "elseif"  ᫥騬   ᪨ ࠦ, ।騬 ⥫쭮 ᫮, 稭 ᫥騩  権,  ᥬ, ᫨ ।騥 ᫮  믮,   ⥫쭮 ᫮ 믮. 樮쭠 ४⨢ "else" 稭  権,  ᥬ, ᫨  믮    ᫮. "end if" 稢 ᫥  権.
      ,  ४⨢ "if" ࠡ뢠  ⠤ ᥬ஢  ⮬    ४⨢ ९, ⠪  । ᨬ ⠭  ந樨 -  ᥬ ᯮ ४⨢ "if",  ९ᨭ 㦥 祭.
    ᪮ ࠦ ⮨  ᪨ 祭  ᪨ ஢. ᪨  룫 ⠪: "~"  ᪮ 栭, "&"  ᪮ , "|"  ᪮ . 栭  訩 ਮ. ᪮ 祭   ᫮ ࠦ,  㤥    砥 ࠢ⢠ ,   㤥 ⨭.  ᮧ ᪮ 祭  ࠢ  ᫮ ࠦ, ᯮ   ᫥ ஢: "=" (ࠢ), "<" (), ">" (), "<=" (  ࠢ), ">=" (  ࠢ), "<>" ( ࠢ).
    "used"  ᫥騬   ᨬ ,  ᪮ 祭, ஥ ஢, ᯮ짮  -  ᨬ ( 頥ࠢ १  ᫨ ᨬ ᯮ ⮫쪮 ᫥ ⮩ ஢ન).  ஬ "defined"  ᫥  ࠦ, 筮  ⮫쪮  ᨬ쭮 ;   ஢, ᮤন   ࠦ ᪫⥫쭮 ᨬ, ।  ,  㯭  ⥪饩 樨.
    騩 ⮩ ਬ ᯮ ⠭ "count"    । -  :

    if count>0
        mov cx,count
        rep movsb
    end if

  樨  ᥬ஢ ⮫쪮 ᫨ ⠭ "count"  . 騩 ਬ 뢠   ᫮ :

    if count & ~ count mod 4
        mov cx,count/4
        rep movsd
    else if count>4
        mov cx,count/4
        rep movsd
        mov cx,count mod 4
        rep movsb
    else
        mov cx,count
        rep movsb
    end if

  権 ᥡ, ᫨ ⠭ "count"  ࠢ   ⭠ ६, ᫨  ᫮  믮, 業 ஥ ᪮ ᫮, ᫥饥  "else if",  ᫨  ୮, ᥬ ன  権,  ᥬ ᫥ ,  ᫥  ப, ᮤঠ饩 ⮫쪮 "else".
      ,   ࠢ 祭,  ।⠢ ᮡ ᫥⥫쭮 ᨬ. "eq" ஢ ⠪ 祭  ⮦⢥.  "in" ஢, ਭ   祭  ᯨ 祭, ᫥饬  ஬. ᮪   祭  ᨬ "<"  ">",   童   ࠧ 묨.   묨, ᫨       祭  ᥬ - ਬ, "pword"  "fword"  ᥬ  ⮬  ࠧ 㪠묨 ࠬ.   "16 eq 10h"  ⨭,  "16 eq 10+4" .
     "eqtype"   ࠢ 祭  ,  ਭ     ⨯. 砥 ⨯   ᥡ ᫮ ࠦ, ப, 祭  窨, 祭  饩 窮,  ࠦ (ࠦ   ᪮  ।७ ஬ "ptr"),  権, ॣ,  ࠧ,  室   ⨯ .    ᯥ樠 ᨬ,   ࠧ⥫, ⠪    稥,  ⤥ ⨯ ᠬ  ᥡ. ਬ,  祭,    ⮨   ॣ  ᫮ ࠦ, ࠧ ⮩,  ᯮ   ⨯, ᨬ   ॣ  ᫮ ᫮ ࠦ;  ᪫祭 ப, 祭  窨  祭  饩 窮,  ⭮  ᯥ樠  ᫮ ࠦ  ᯮ  ࠧ ⨯. ⮬ ᫮ "eax,16 eqtype fs,3+7"  ⨭,  "eax,16 eqtype eax,1.6" - .


2.2.2  ७  権

"times"    㪠 ᢮ ࠧ.    ᫥ ᫮ ࠦ, ।饥 ⢮ ७,  ,  㦭  (樮쭮  ⮣, ⮡ ⤥ ᫮  ,  ᯮ짮 稥). 樠 ᨬ "%", ᯮ騩  樨, ⥭  ⥪饣 . ਬ, "times 5 db %" ।  ⮢  祭ﬨ 1, 2, 3, 4, 5. ন ⠪ ४ᨢ ᯮ짮 ४⨢ "times", ਬ, "times 3 times % db %" ।  ⮢  祭ﬨ 1, 1, 2, 1, 2, 3.
    "repeat"  楫  権.    ᫥ ᫮ ࠦ, ।饥 ⢮ ७. 樨  ७ ।  ᫥ ப,  稢   ४⨢ "end repeat", ਬ:

    repeat 8
        mov byte [bx],%
        inc bx
    end repeat

    ஢  ࠭   祭ﬨ    쬨  , ᮢ ॣ஬ BX.
    ⢮ ७   ࠢ ,   ⠪ 砥 樨   ᥬ஢ .
    "break"  ⠭ ७ ࠭  த ᥬ஢  ࢮ ப ᫥ "end repeat".  ⠭  ४⨢ "if"   ⠭ ७  믮 ண ᮡ ᫮, ਬ:

    s = x/2
    repeat 100
        if x/s = s
            break
        end if
        s = (s+x/s)/2
    end repeat

    "while"   権,  믮 ᫥饥   ᫮, । ᪨ ࠦ.  権  ७  稢 ४⨢ "end while". ।  ७ ᪮ ࠦ   ᫨  祭 , ᥬ஢ த, 稭  ࢮ ப ᫥ "end while".   ⮬ 砥 ᨬ "%" ᮤন  ⥪饣 ७. ४⨢ "break"   ᯮ짮  ⠭ ⮣ ⨯ 横 ⠪  ,   ४⨢ "repeat". ।騩 ਬ   ९ᠭ  ᯮ짮 "while"  "repeat" ⠪ ࠧ:

    s = x/2
    while x/s <> s
        s = (s+x/s)/2
        if % = 100
            break
        end if
    end while

    , ।  ᯮ짮 "if", "repeat"  "while"      浪,     ⭮. ४⨢ "break" ᥣ ⠭ ࠡ ,    ᫥  ४⨢ "repeat",  "while".


2.2.3   ࠭⢠

"org" ⠭ ,  ஬ ᫥騩       .    ᫥ ᫮ ࠦ, 㪠뢠饥 .  ४⨢ 稭  ᭮ ࠭⢮, ᫥騩  ᠬ  ᥡ 㤠  ,   ⪨, ।    祭 ᨬ "$"   ᫨     饭  ⮬ .    易   ६ 믮   ࠢ쭮    ணࠬ.
    "load"  । ⠭  祭, 㦥  㦥 ᥬ஢ .  ४⨢  ᫥  ⠭, ⥬ 樮쭮  ࠧ, ⥬  "from"  ᫮ ࠦ, ।饥    ⥪饬 ᭮ ࠭⢥.  ࠧ   筮 祭 -  ।, ᪮쪮 ⮢ ( 8)   㦥  筮 祭 ⠭. ᫨  ࠧ  ।, 㦠   (⠪ ࠧ 祭 뢠  ।  0  255). 㦥    ॢ室 ⥪饥 ᬥ饭.
    "store"  ஢ 㦥 ᣥ஢    ࠭ ᣥ஢ ⮢ 祭,  ᫥騬  樥 ᫮ ࠦ. । ⨬ ࠦ    ࠧ, ।騩, ᪮쪮  祭  ,   ᪮쪮 㤥 ࠭ . ᫨  ࠧ  , ࠧ㬥    .   ᫥  "at"  ᫮ ࠦ, 㪠뢠饥    ⥪饬 ᭮ ࠭⢥ .  ⮬  㤥 ࠭  祭.  ४⨢  த⮣ ਬ   ᫥ ᯮ짮 ஦.
     ४⨢ "load"  "store" ࠭祭 ஢ ⮫쪮  । ⥪饣 ᭮ ࠭⢠.  "$$" ᥣ ࠢ    ⥪饬 ᭮ ࠭⢥,  ᨬ "$" -   ⥪饩 樨  ,     祭 । ࠭ ⢨ ४⨢ "load"  "store".
     ४⨢ "load"  "store"   , ⠪  ஢ ண  㦥 ᣥ஢ . ਬ,  ஢ ᥣ , ᣥ஢  ⥪饬 ᭮ ࠭⢥   ᯮ짮 ⠪  ४⨢:

    repeat $-$$
        load a byte from $$+%-1
        store byte a xor c at $$+%-1
    end repeat

    㤥 ப७  祭, । ⠭⮩ "c".
    "virtual" । 㠫   㪠 .     祭  䠩 뢮,   ⪨, । ,  ᯮ짮  㣨  .  ⮩ ४⨢  ᫥  "at"  ᫮ ࠦ, ।饥  㠫 ,  㤥 ᯮ짮 ⥪騩 ,  ࠢᨫ쭮 ४⨢ "virtual at $". 樨 ।塞    ᯮ  ᫥ ப  稢 ४⨢ "end virtual".  㠫 権 ᠬ  ᥡ ᨬ ᭮ ࠭⢮,  ᫥ ⮣,   稢, ⠭ ⥪ ।饣 ᭮ ࠭⢠.
    ४⨢ "virtual"   ᯮ짮  ᮧ ꥤ ᪮쪨 ६, ਬ:

    GDTR dp ?
    virtual at GDTR
        GDT_limit dw ?
        GDT_address dd ?
    end virtual

     ।   48-⭮ ६   "GDTR".
    ४⨢ ⠪   ᯮ짮  । ⮪  , ᮢ ॣ஬, ਬ:

    virtual at bx
        LDT_limit dw ?
        LDT_address dd ?
    end virtual


 ⠪ ।  "mov ax,[LDT_limit]" 㤥 ᥬ஢  "mov ax,[bx]".
         権  祭   㠫쭮 , ⠪  ४⨢ "load"  ᯮ짮  㧪  ⠭ 祭  㠫쭮 ᣥ஢ .  ४⨢   ᯮ짮 ᫥ 㦠 ,   砭 㠫쭮 , ⠪    㦠 祭 ⮫쪮  ⮣  ᭮ ࠭⢠. ਬ:

    virtual at 0
        xor eax,eax
        and edx,eax
        load zeroq dword from 0
    end virtual

     ᮪  । ⠭ "zeroq",  㤥 ᮤঠ   設  権, 㪠  㠫쭮 .  ⮤ ⠪   ᯮ짮  㧪   祭  譥 䠩. ਬ  :

    virtual at 0
        file 'a.txt':10h,1
        load char from 0
    end virtual

㦠    ᬥ饭 10h  䠩 "a.txt"  ⠭ "char".
     ४⨢ "section", ᠭ  2.4, ⠪ 稭  ᭮ ࠭⢮.


2.2.4  㣨 ४⨢

"align" ࠢ     㪠 ࠭.    ᫥ ᫮ ࠦ, ।饥 ⢮ ⮢,  ⭮ ஬   ஢ ⥪騩 . 祭 ࠭   ⥯ .
    ४⨢ "align"  ,    ய饭, ⮡ ᮢ ࠢ, ﬨ "nop",     ६ ન    樠஢ ,   ᫨   । 㣨 樠஢ ,      䠩 뢮, ࠢ ⮢ ந室 ⠪  ࠧ. ᫨  㦭   ࠢ - 㣨 祭ﬨ,    "align"  "virtual", ⮡  ॡ㥬 ࠧ ࠢ   ᮧ ࠢ ᠬ⥫쭮, ਬ:

    virtual
        align 16
        a = $ - $$
    end virtual
    db a dup 0

⠭ "a" ।  ࠧ  ᮬ ᫥ ࠢ  ᮬ  "virtual" (ᬮ ।騩 ࠣ),    ࠢ ࠧ ॡ㥬 ࠭⢠ ࠢ.
    "display"  ६ ᥬ஢ 뢠 ᮮ饭.    ᫥ ப  窠  祭 ⮢, ࠧ 묨. ४⨢   ᯮ짮   祭  ⠭, ਬ:

    bits = 16
    display 'Current offset is 0x'
    repeat bits/4
        d = '0' + $ shr (bits-%*4) and 0Fh
        if d > '9'
            d = d + 'A'-'9'-1
        end if
        display d
    end repeat
    display 13,10

  ४⨢ 뢠   16-⭮ 祭       .     㤥 ࠡ, ᫨   ⥪饬 ᭮ ࠭⢥ ६頥 (     ꥪ ଠ⮬ 뢮  ଠ⮬ PE), ⠪  ⠪ ࠧ   ᯮ짮 ⮫쪮 ᮫ 祭. ᮫⭮ 祭   祭 ᫥ ⭮⥫쭮 , ਬ "$-$$"  "rva $"  砥 ଠ PE.


2.2.5  ⢥ 室

  ᥬ  뫠   ⪨  ⠭ । ⥬,   䠪᪨ ।, 室 ண஢ 祭  ⮪  ᫨   ७,  ண      ࠧ,    室, ᥬ騩  ,    ६  訩 ண, 饥  祭 ⮪, 祭  ।騩 室.
     祭 ⮪   稭 ⮣,   樨 ४  㣨    ᭮   ⮪.  ⠪  ⪨  ⠭   ᯮ짮  ࠦ,     ४⨢ ࠢ,   権   室  ᥬ஢ ᮫⭮ -㣮. ⮬ ᥬ  室 ᭮  ᭮,  ࠧ  ᮧ 訥 ண, ⮡ ਡ  䨭쭮 襭,   祭 ண஢ ࠢ쭮.  ண ᯮ ࠧ ⮤,  롨  ⥬, ⮡     訬 ⢮ 室 襭 襩    設⢠ ணࠬ.
      訡, ⠪   祭   ࠭,  ᨣ  ६  ஬ 室,    ⠪,  ᫨ - 祭  ண஢ ,  訡 祧 ᠬ ᮡ. , ᫨ ᥬ 砥 - ⨬ ᨭ⠪    ,  ᥣ ⠭ .   訡 뢠 । ⪨ , 祬  , ⠪    ண ᭮묨.
    ᫨   砥 ४⨢ "display", 䠪᪨ ⮡ࠦ ⮫쪮 ᮮ饭, ᮧ  ᫥ ᮢ 室.  砥, ᫨ ᥬ ⠭ - 訡,  ᮮ饭  ࠦ ண஢ 祭,    ࠧ襭 ࠢ쭮.
    襭    ᮧ   ⠪  ᥬ   㬥 ᮧ ࠢ ண -  ⮩ 稭  । ᢠ 室,   ᥬ ௠  ,  ⠭ ⮡ࠧ ᮮ饭,   ᣥ஢ ४ 뢮. ᬮਬ ᫥騩 ਬ:

    if ~ defined alpha
        alpha:
    end if

᫨  "defined" 뤠 祭 ⨭, ᫨ ࠦ, ᫥饥  ,  ⮬    ᫥,    砥 砥,  ⪠ "alpha" - ।.    ।   ⮫쪮, ᫨ 祭,  ஬ "defined" ,    ⨢    ࠧ ⠪ . ᫨, ࠡ뢠 ४⨢ "if" ᥬ  ண஢, 㤥  - । ⪠ "alpha" (⮣   室 ⮫쪮 ᫨ ⪠ 㦥 । ࠭),      ண, ᥣ 室 ⨢. ⮬ ᥬ஢ ⠭,᫨ ⮫쪮 ⪠ "alpha"  । -   । 㪧  -  ⮬ 砥,  㦥 뫮 ⬥祭 ண஢  ॡ    㤥 ய饭.
    ।騩 ਬ   ᮧ  ⪠ । , ⮫쪮 ᫨ ⮣    ᤥ.  ப ࠢ, ᪮  "defined" ஢ ।  ⪠ - ,   砥 ।  ⮣ ᫮ .   ᯮᮡ   ஡:

    if ~ defined alpha | defined @f
        alpha:
        @@:
    end if

"@f"  ᥣ   ⪠,  訩 ᫥騩   ᨬ "@@", ⮬ ।騩 ਬ   ,  ᫨    ⪨ 뫮 ।  㭨쭮 . ᫨ ⪠ "alpha"   ।, ᥬ ண 祭 "defined alpha"  ,  㤥  ,   ।  ⪨.   ᫥饬 室 ᥬ ண,  ।  ⪨,  ⠢ ।   - ⠪ ண 㤥 ᮢ  १⮬   ᥬ ਤ  ࠢ쭮 襭.  ⪠ 㯠   થ ⮣,  ⪠ "alpha" ।  ⮬ .
 ⮣ ਬ   ,  ண   "defined" 祭 אַ - ⪠ ண  । ⮫쪮 ᫨  뫠 ।  ।騩 室 ( ᫨  뫠 ।  ⥪騩 室, ண  ॡ).   ᠬ ⭮   "used".  ண  祭 ⮪  ⠪      ᫥ ,  ᥬ ࠡ⠥ ⠪ ᯮᮡ.


2.3  ४⨢ ९

 ४⨢ ९ 믮 । ᭮ ᥬ஢,  ⠪ ࠧ ४⨢ ࠢ     .   ६ ⠪ 㤠  ਨ.


2.3.1  祭 䠩-室

"include" 砥 㪠 䠩-室 㤠,   ४⨢ ᯫ.    ᫥  窠 䠩,    祭, ਬ:

    include 'macros.inc'

 祭 䠩 ࠡ뢠 ९஬ । ࠡ⪮ ப, ᫥  ᮤঠ饩 ४⨢ "include".  ।  ⢠ 砥 䠩,   㬥  .
    , 祭  ᪮,  ᮤঠ 㦠騥 ६, 祭   "%",      祭  .  "\"  "/" ࠪ  ࠧ⥫ . ᫨  㪠 ᮫ , ᭠砫 䠩   ४ਨ, ᮤঠ饩 䠩,    砥, , , ᫨  ⠬ ,  ४ਨ, ᮤঠ饩  䠩-室 (㪠   ப).  ࠢ ⠪  ⭮  ,  㪠뢠  ४⨢ "file".


2.3.2   ⠭

 ⠭ ⫨  ᫮ ⠭ ⥬,  । ᮬ ᥬ஢     祭   ப , ᫥   ।,      祭.
    । ᨬ ⠭ ⮨   ⠭,  ன ᫥ ४⨢ "equ". ,  ᫥  ⮩ ४, ⠭ 祭 ⠭. ᫨ 祭 ᨬ쭮 ⠭ ᮤন 㣨 ᨬ ⠭,     祭 । ᢮ 祭  ⠭. ਬ:

    d equ dword
    NULL equ d 0
    d equ edx

᫥   । 祭 "NULL" 㤥 "dword 0",  祭 "d" 㤥 "edx". , ਬ, "push NULL" 㤥 ᥬ஢  "push dword 0",  "push d"  "push edx". , ਬ,  ⠪ ப:

    d equ d,eax

⠭ "d" 㤥 ᢮  祭 "edx,eax".  ࠧ  । 騥 ᯨ᪨ ᨬ.
    "restore"  ᢮  ।饥 祭 ८। ⠭.    ᫥     ᨬ ⠭, ࠧ 묨. , "restore d" ᫥ ।饣 ८। ୥ ⠭ 祭 "edx", ᫥饥 ਬ ⮩ ४⨢ ୥  祭 "dword",    ਬ ⠭ ࢮ砫쭮 祭,   ⠪ ⠭  ।. ᫨  ⠭     ।,  "restore"  맮 訡,  㤥  ந஢.
     ⠭  ᯮ짮  樨 ᨭ⠪ ᥬ  ᮭ ।⥭. ਬ, ᫥騥 । ᮧ 㤮 모   ஢ ࠧ:

    b equ byte
    w equ word
    d equ dword
    p equ pword
    f equ fword
    q equ qword
    t equ tword
    x equ dqword

  ᨬ쭠 ⠭  ⠪   ⮥ 祭,   ᯮ짮  ⮣, ⮡  ᨭ⠪  ᫮ "offset" । - 祭 :

    offset equ

᫥ ⠪ । "mov ax, offset char" 㤥 ࠢ쭮 樥,  㤥 ஢ ᬥ饭 ६ "char"  ॣ "ax",⠪  "offset"   祭,  ⮬ .
     ⠭  ⠪  । ४⨢ "fix",   ⠪  ᨭ⠪,  "equ",  । ⠭ 襣 ਮ -    ᨬ᪨ 祭  । ᮢ襭 ४⨢ ९  ந権. ᪫祭  ᠬ ४⨢ "fix",   訩  ਮ,  ⮬ ᪠ ८। ⠭,  ⠪ ⥬.  ᫨ ⠪ ⠭ 襣 ਮ 室  祭, ᫥饣  ४⨢ "fix",    祭ﬨ । ᢮ ⮣ 祭  ⠭.
    ४⨢ "fix"  ᯮ짮  ஢ ४⨢ ९,   ᤥ ४⨢ "equ". ਬ:

    incl fix include

। ⪮   ४⨢ "include", ⮣  ⠪  । ४⨢ "equ"   ⠪ १, ⠪  ⠭ ᨬ ⠭    祭 ᫥ ᪠ ப  ४⨢ ९.


2.3.3  ந樨

"macro"   । ᮡ⢥  権, 뢠 நﬨ.  ᯮ짮  ⢥   ணࠬ஢.  ᢮ ⥩襩 ଥ ४⨢ 宦  ᠭ ᨬ쭮 ⠭. ਬ, ᫥ ப ।   樨 "test al,0xFF":

    macro tst {test al,0xFF}

᫥ ४⨢ "macro"    ந樨    ᮤঠ, 祭   "{"  "}".   ᯮ짮  "tst"    ᫥  ।   㤥 ᥬ஢  "test al,0xFF". । ᨬ쭮 ⠭  ⠪ 祭  宦 १, ࠧ稥   ⮬,   ந樨 㤥 ᯮ ⮫쪮   樨. , ந樨  ᮮ⢥騬   ।  ᨬ ⠭   祭.  , ᫨   । ந  ᨬ ⠭    ⥬    ᯮ     樨,  㤥   ᮤঠ ந樨,  ᫨  ᯮ   ࠭,  㤥   祭 ᨬ쭮 ⠭.
    । ந樨    ᪮쪨 ப, ⮬   "{"  "}"  易⥫쭮  室   ப  ४⨢ "macro". ਬ:

    macro stos0
     {
        xor al,al
        stosb
     }

ந "stos0" 㤥     樨 ᥬ,     ᯮ짮.
      樨,  ॡ ᪮쪮 ࠭,  ந樨   ॡ ᪮쪨 㬥⮢, ࠧ  묨.   㬥⮢  ᫥   ந樨  ப  ४⨢ "macro".     ந樨,    ,    ᮮ⢥騬 祭ﬨ, 㪠묨 ⠬,  ந ᯮ.  ਬ ந樨,   ࠢ   筮 ଠ 뢮:

    macro align value { rb (value-1)-($+value-1) mod value }

  "align 4" 砥 ᫥ ⮣  ந樨,     ᮤঠ,   "value" ⠭ 4,  १ 㤥 "rb (4-1)-($+4-1) mod 4".
    ᫨  । ந樨 砥   ,  ᯮ ।饥 祭 ⮣ .  ࠧ   ᤥ  ८। ᨭ権, ਬ:

    macro mov op1,op2
     {
      if op1 in <ds,es,fs,gs,ss> & op2 in <cs,ds,es,fs,gs,ss>
        push  op2
        pop   op1
      else
        mov   op1,op2
      end if
     }

 ந  ᨭ⠪ 樨 "mov",   ࠭  ᥣ묨 ॣࠬ. ਬ, "mov ds,es" 㤥 ᥬ஢  "push es"  "pop ds".   㣨  㤥 ᯮ짮 ⠭⭠  "mov". ⠪ ⮣ "mov"   ७  । ᫥饩 ந樨  ⠪ ,  㤥 ᯮ짮 ।騩:

    macro mov op1,op2,op3
     {
      if op3 eq
        mov   op1,op2
      else
        mov   op1,op2
        mov   op2,op3
      end if
     }

  樨 "mov"   ࠭,   ⠪       ࠭, ⠪  ᫨ ந樨   㬥⮢, 祬  ॡ, ⠢訥  ⬨ 祭ﬨ. ᫨   ࠭,  ந ॢ   ࠭ ।,   "mov es,ds,dx" 㤥 ᥬ஢  "push ds", "pop es"  "mov ds,dx".
    ᫨ ॡ ᮧ ந  㬥⮬,  ᮤন ,  㬥 ᫥   "<"  ">". ᫨  ᮤন    "<",   砭  ᠭ   ᯮ짮 ⠪  ⢮ ">".
    "purge"  ⬥ ᫥ । 㪠 ந樨.  ४⨢  ᫥     ந権, ࠧ 묨. ᫨ 㪠 ந  ।,   맮 訡. ਬ, ᫥ ७ ᨭ⠪ "mov" 㪠묨 நﬨ   ⪫ ᨭ⠪  ६ ࠭, ᯮ ४⨢ "purge mov". 饥 "purge mov" ⪫ ᨭ⠪  ᥣ ॣ஢,  쭥襥 ਬ ⮩ ४⨢  묥 䥪.
    ᫨ ᫥ ४⨢ "macro"  砥  㯯 㬥⮢   ᪮,    ᯮ짮 ந樨   㯯 㬥⮢  祭.  ᫥騩 㬥  ᫥ ᫥ 㬥  㯯 筥  㯯  ⠭   童. ⮬ ᫥   ᪮     㬥⮢. ঠ ந樨 㤥 ࠡ뢠   ⠪ 㯯 㬥⮢ ⤥쭮. ⥩訩 ਬ -  祭   㬥   ᪮:

    macro stoschar [char]
     {
        mov al,char
        stosb
     }

 ந ᪠ ࠭祭 ᫮ 㬥⮢,   㤥 ࠡ⠭ ⨬  ﬨ ⤥쭮. ਬ, "stoschar 1,2,3" 㤥 ᥬ஢  ᫥騥 樨:

    mov al,1
    stosb
    mov al,2
    stosb
    mov al,3
    stosb

  ᯥ樠 ४⨢,  ⮫쪮  । ந権. ४⨢ "local"   ,    㭨묨 祭ﬨ  ࠧ,  ᯮ ந.    ᫥ , ࠧ 묨.  ४⨢ 筮 ॡ  ७ ⠭  ⮪ ந樨. ਬ:

    macro movstr
     {
        local move
      move:
        lodsb
        stosb
        test al,al
        jnz move
     }

 ࠧ,  ᯮ  ந, "move"   㭨 .      訡,   砩,  ⪠ । , 祬  ࠧ.
    "forward", "reverse"  "common"  ந  ,    ࠡ뢠 ᫥ 砭 ࠡ⪨ ।饣.  ࠧ   ⮫쪮 ᫨ ந ন  㯯 㬥⮢.  権, ᫥騩  "forward" 㤥 ࠡ뢠   㯯 㬥⮢  ࢮ  ᫥,    㬮砭 (  ४⨢). , 騩  "reverse" 㤥 ࠡ뢠   㯯 㬥⮢  ⭮ 浪 -  ᫥  ࢮ.   ४⨢ "common" ࠡ뢠   ࠧ,    㯯 㬥⮢. 쭮 , ।   , 㯭   ᫥   ࠡ⪥ ⮩  㯯 㬥⮢. ᫨  뫮 ।   "common",  㯭   ᫥ , ᨬ  ࠡ뢠 㯯.
     ਬ ந樨,  ᮧ ⠡ ᮢ ப  ᫥   ப.

    macro strtbl name,[string]
     {
      common
        label name dword
      forward
        local label
        dd label
      forward
        label db string,0
     }

 㬥,  ⮩ ந樨, ⠭ ⪮  ⠡ ᮢ, ᫥騬 㬥⠬   ப.   ࠡ력   । , ன  砥     ப  ।   ⠡, ᮤঠ騩  ⮩ ப. ⨩  ।   ப  ᮮ⢥饩 ⪮.
    ࢠ , ᫥  ४⨢, 稭饩   ந樨,      ⮩  ப,   ᫥饬 ਬ:

    macro stdcall proc,[arg]
     {
      reverse push arg
      common call proc
     }

   ਬ  맮 楤, ᯮ ᮣ襭 STDCALL, 㬥 ࠭  ⥪  ⭮ 浪. ਬ, "stdcall foo,1,2,3" 㤥 ᥬ஢ ⠪:

    push 3
    push 2
    push 1
    call foo

᫨    ந樨  ᪮쪮 祭 (    㬥⮢, 祭   ᪮,  쭮 , ।  , ᫥饬  ४⨢ "forward"  "reverse")  ᯮ  , ᫥饬  ४⨢ "common",  㤥    祭, ࠧ 묨. ਬ, ᫥騩  ।  ⥫ 㬥 ࠭ । ந樨 "stdcall":

    macro invoke proc,[arg]
     { common stdcall [proc],arg }

  ਬ  אַ 맮 (१ 㪠⥫  ) 楤, ᯮ ᮣ襭 STDCALL.
     ந樨 ⠪   ᯮ짮 ᯥ樠  "#".   楯    .    , ⠪   ᫥ ⮣,  㬥      ᢮ 祭.  ந  ᫮ 室  ᨬ  㬥 "cond":

    macro jif op1,cond,op2,label
     {
        cmp op1,op2
        j#cond label
     }

ਬ, "jif ax,ae,10h,exit" 㤥 ᥬ஢  樨 "cmp ax,10h"  "jae exit".
     "#"  ⠪ ᯮ짮  ꥤ  ப, 祭  窨.
     ८ࠧ   ப  窠    "`",  ⠪   짮  ந樨.   ᫥饥     ப, 祭  ᪮,    ,  ᫨   ᫥ 㬥,    祭, ᮤঠ饥 , 祬  ᨬ, 㤥 ࠧ ⮫쪮   , ⠪   "`"  ⮫쪮 ᨬ, 騨 ।⢥  .  ਬ ᯮ짮   ᢮:

    macro label name
     {
        label name
        if ~ used name
          display `name # " is defined but not used.",13,10
        end if
     }

᫨ ⪠, । ⠪ ᮬ,  ᯮ  ,     ⮬ ᮮ饭, 㪠뢠騬,   ⪥  ⭮.
    ⮡ ᮧ ந,  ᥡ -ࠧ  ᨬ  ⨯ 㬥⮢, ਬ ᫨  ப  窠,   ᯮ짮  ࠢ "eqtype".  ਬ  ᯮ짮  ⤥ ப  窠  㣨 ⨯ 㬥⮢:

    macro message arg
     {
      if arg eqtype ""
        local str
        jmp   @f
        str   db arg,0Dh,0Ah,24h
        @@:
        mov   dx,str
      else
        mov   dx,arg
      end if
        mov   ah,9
        int   21h
     }

襮ᠭ  ᮧ   ᮮ饭  ணࠬ DOS. ᫨ 㬥 ⮣  ஥ ᫮, ⪠  ६, 뢠 ப  ⮣ ,  ᫨ 㬥 -  ப  窠,  ᮧ    ᫥ ...  ... .
       ந  㣮 ந樨,      । 㣮,   ⠪ ।ﬨ  ஡, 맢 ⥬,   "}"     ந樨,  ᥣ 砥   ।. ⮡   ஡,     ᨬ.   ⥬ ⠭     襩 । 묨 㣨 ᨬ ( ᯥ樠묨 ). ९   ᫥⥫쭮   ᨬ,   ࠧ,    ⠪ ᨬ  ६ ࠡ⪨ ,  १     砫. ਬ, "\{" ࠪ   ᨬ,   ६ ࠡ⪨   ⠭ ᨬ "\{".    ।  ந  㣮:

    macro ext instr
     {
      macro instr op1,op2,op3
       \{
        if op3 eq
          instr op1,op2
        else
          instr op1,op2
          instr op2,op3
        end if
       \}
     }

    ext add
    ext sub

 "ext" । ४⭮,    ᯮ, ᨬ "\{"  "\}" ⠭ "{"  "}".    ࠡ뢠 "ext add", ᮤঠ  ⠭ ⢨⥫ । ந樨,  ⠪ ࠧ ।  "add".   "ext sub" ।  "sub". ᯮ짮 ᨬ "\{"  뫮  ⢨⥫쭮 室,  ᤥ ⠪ ࠧ  ⮣, ⮡ । 뫮  .
    ᫨  ४⨢, ᯥ᪨  ந権, ⠪  "local"  "common", ॡ  ஬ , 祭 ⠪ ࠧ,     ⠪  ⥬. ᪫祭 ᨬ  祬   襬 ⠪  ন,    ⢥ ஢  । ᮢ.
    㣠 孨 । ந権  㣨 ⮨  ᯮ짮 ४⨢ "fix",  ⠭ ,    ⮫쪮 稭 । 㣮,   . ਬ:

    macro tmacro params
     {
      macro params {
     }

    MACRO fix tmacro
    ENDM fix }

। ୠ⨢ ᨭ⠪ । ᮢ,  룫廊 :

    MACRO stoschar char
        mov al,char
        stosb
    ENDM

  ,  ⠪ ࠧ  ।   ᮧ  ਬ ४⨢ "fix", ⠪  । ⥬,     "}"  ६ । , ࠡ뢠 ⮫쪮 ᨬ ⠭ 襣 ਮ!   ஡, ᫨ ॡ 믮  ⥫    ⠪ ।,     ᢮⢮, ஥  ⠪   .      ४⨢,   ந ࠧ ᫥ ᨬ "}",  稢 ந   㤥 ࠡ⠭ ⠪ ,  ᫨  뫠  ᫥饩 ப.


2.3.4  

"struc" -  ᯥ樠 ਠ ४⨢ "macro",  ᯮ  ।  . ந樨, । ४⨢ "struc",  ᯮ,  । ⪮ ( ४⨢ । ).  ⪠ 㤥 ⠪ ᮥ  砫  , 稭饣  窨,  ᮤঠ ந樨. ந, ।  ᯮ짮 ४⨢ "struc",   ⠪  ,  , ।  ᯮ짮 ४⨢ "macro". ୠ ந  㤥  筮 , 믮饬  ⪨ ।   .  ࠢ  ᢮⢠, 騥 ⠭ ᮢ, ਬ   ந.
     ਬ :

    struc point x,y
     {
        .x dw x
        .y dw y
   

ਬ "my point 7,11" । , 祭 "my", ᮤঠ  ६: "my.x"  祭 7  "my.y"  祭 11.
    ᫨-  ।  室 , 騥    窨,     ⪨   ਬ    ⪠ ⠪ ࠧ  㤥 । ⮬᪨,    ।. 騩 ਬ ᯮ  ᢮⢮, ⮡  । ४⨢ "db"   ᫥ ࠧ ।塞 :

    struc db [data]
     {
       common
        . db data
        .size = $ - .
     }

 ࠧ ப "msg db 'Hello!',13,10" । ⠪  ⠭ "msg.size", ࢭ ࠧ ।塞   .
    ।  , ᮢ ॣࠬ  ᮫묨 祭ﬨ   ᤥ 묨 நﬨ  ᯮ짮 ४⨢ "virtual" (ᬮ 2.2.3).
    "restruc" 㤠 ᫥ । , ⠪   "purge"   ᠬ  "restore"  ᨬ묨 ⠭⠬. ४⨢    ᨭ⠪ -    ᫥   ᪮쪮   ᮢ, ࠧ 묨.


2.3.5  ७ ந権

४⨢ "rept" -  ᯥ樠  ந権,    ᫮ 㡫⮢ , 祭  䨣 ᪮. ⮩ ᨭ⠪ - ᫮, ᫥饥  "rept" (    ࠦ, ⠪  ९  ᮢ蠥 ᫥, ᫨  㦭 ७, 騥  ࠦ, ᫥ ᥬ஬, ᯮ   ४⨢, ࠡ뢠 ᥬ஬, ᬮ 2.2.2),   , 祭   "{"  "}". ⥩訩 ਬ:

    rept 5 { in al,dx }

ᮧ  㡫⮢ ப "in al,dx".  権 । ⠪  ࠧ,   ⠭ ᮢ,  ᪠  ᯥ樠   ४⨢,   ᯮ짮 ⮫쪮  ந権. ᫨  ᫮ ࠢ ,   ய᪠,  ᫨   । ,   ᯮ짮 .  ⢮ ७  ᫥  ᨬ-稪,  ᨬ쭮 㤥    ⥪饣 ७.  ࠧ:

    rept 3 counter
     {
        byte#counter db counter
     }

 ப:

    byte1 db 1
    byte2 db 2
    byte3 db 3

堭 ७, ਬ塞   "rept" ⠪ ,  ,  ᯮ  ࠡ⪨ ⢥ 㯯 㬥⮢ ᮢ,   ४⨢, ⠪  "forward", "common"  "reverse"  ᯮ짮   筮 祭.
    ⠪, ⠪ :

    rept 7 num { reverse display `num }

 ᨬ  7  1  ⥪. ४⨢ "local" ࠡ⠥ ⠪ ,   ᮢ  ᪮쪨 㯯 㬥⮢,  :

    rept 21
     {
       local label
       label: loop label
     }

ᣥ㭨    㡫. -稪 筮 稭  1,     㣮  祭, ।७ ⮩, ࠧ  ᫥  稪. ਬ:

    rept 8 n:0 { pxor xmm#n,xmm#n }

 , 騩 ᮤন ॣ஢ SSE.   । ᪮쪮 稪, ࠧ 묨,     ᢮ .
    "irp"   㬥 १  ᯨ᮪ ࠬ஢. ⠪ ⠪:  "irp" ᫥  㬥,     ᯨ᮪ ࠬ஢. ࠬ । ⠪  ࠧ,   맮 ⠭⭮ ,     ࠧ 묨     祭   "<"  ">".     㬥  ᫥ "*"  祭 ⮣,      ⮥ 祭.  :

   irp value, 2,3,5
    { db value }

ᣥ ப:

   db 2
   db 3
   db 5

    "irps"  १  ᯨ᮪ ᨬ,  ४⨢  ᫥  㬥,     ᫥⥫쭮  ᨬ.  ᨬ  ᫥⥫쭮, ᨬ  ⮣, ᨬ   ,  ᨬ  ப  窠, ⠭ 祭 㬥   . ᫨  ⮩  ᨬ  ᫥,  権  ந .  ਬ:

   irps reg, al bx ecx
    { xor reg,reg }

ᣥ ப:

   xor al,al
   xor bx,bx
   xor ecx,ecx

, । ४⨢ "irp"  "irps", ࠡ뢠 ⠪ ,  ,   ࠭  ४⨢, ᯥ  ᮢ    ᢮ ᯮ짮.


2.3.6  ᫮ ९ᨭ

 ਬ ४⨢ "match"    ࠡ뢠 ९஬  । ᥬ, ⮫쪮 ᫨  ᫥⥫쭮 ᨬ ᮢ  ࠧ殬. ࠧ  , 稢 ⮩,   ᨬ,   室  ࠧ,    , 祭  䨣 ᪮,  ந.
     ᪮쪮 ࠢ  ஥ ࠦ  ࠢ, ࢮ -   ᬢ   ப  窠  ᮮ⢥⢮ ᮫⭮ 筮.  ⮬ ਬ:

    match +,+ { include 'first.inc' }
    match +,- { include 'second.inc' }

 䠩 㤥 祭, ⠪  "+" ᫥ ⮩ ᮮ⢥ "+"  ࠧ,  ன 䠩  㤥 祭, ⠪  ᮢ .
    ⮡ ᮮ⢥⢮  㣮 ᨬ 㪢쭮,   ।  "="  ࠧ.  ⮡ ਢ  ᮮ⢥⢨ ᠬ  "=",    ᯮ짮 樨 "=="  "=,". ਬ, ࠧ "=a==" 㤥 ᮮ⢥⢮ ᫥⥫쭮 "a=".
    ᫨  ࠧ ⮨  ᨬ ,  ᮮ⢥  ᫥⥫쭮, ᮤঠ饩  ࠩ   ᨬ      ⠢  ᮮ⢥⢨ ᫥⥫쭮   ᫥饬 , 筮 ࠬࠬ  ந樨. :

    match a-b, 0-7
     { dw a,b-a }

ᣥ  "dw 0, 7-0".   ᥣ ⠢  ᮮ⢥⢨   襬  ᨬ, ⠢ ⠢訥,  :

    match a b, 1+2+3 { db a }

 "a" 㤥 ᮮ⢥⢮ ᨬ "1", ⠢ ᫥쭮 "+2+3"  ᮮ⢥⢨  "b". , ⠪ ࠧ:

    match a b, 1 { db a }

 "b" 祣  ⠥,     㤥 ࠡ⠭.
     , । ४⨢ "match" ࠡ뢠 ⠪ ,   ந, ⮬   ᯮ짮  , ᯥ  ந権.
      ४⨢ "match" 祭 , ⠪   䠪,    ᨬ ⠭   祭  ⠢  ᮮ⢥⢨ ᫥⥫쭮 ᨬ (   ᫥ ⮩  砫  ) । 砫 ᮯ⠢.  ⮬ ४⨢  ᯮ짮, ਬ,  ࠡ⪨ ண    ᨬ  믮 ᫮,   ᨬ쭠 ⠭  㦭 祭, ਬ:

    match =TRUE, DEBUG { include 'debug.inc' }

 䠩 㤥 祭, ⮫쪮 ᫨ ᨬ쭮 ⠭ "DEBUG" ।  祭 "TRUE".


2.3.7  冷 ࠡ⪨

 ⠭ ࠧ ᢮ ९   冷,  ஬  ࠡ뢠.  㦥 뫮 ⬥祭, 訩 ਮ  ४⨢ "fix"  ,  ।.    । ᮢ襭  㣮 ९ᨭ, ⮬ ⠪ ᮪ :

    V fix {
      macro empty
       V
    V fix }
       V

 ⨬ । ⮣ .  ᪠,  ४⨢ "fix"  ਮ ⠭ ࠡ뢠  ⤥쭮 ⠤,   ⠫쭮 ९ᨭ   १饬 .
    ⠭ ९ᨭ,  稭 ᫥,   ப 稭  ᯮ ࢮ ᨬ. 砫  ஢ઠ  ४⨢ ९,  ᫨      , ९ ஢,    ᨬ ந樥. ᫨ ந  , ९ 室  ஬ ᨬ  ப,  ᭮ 稭  ஢ન  ४⨢, ᯨ᮪   ⮬ 砥 ࠭稢  "equ", ⠪  ⮫쪮     ᨬ  ப. ᫨  ४⨢, ன ᨬ    ந,  ᫨     ஢ப   ⥫쭮 १, ᨬ ⠭    祭,  ப । ᥬ.
    த㥬   ਬ.  "foo" -  ,  "bar" -  .  ப:

    foo equ
    foo bar

  ஢  맮  "foo", ⠪  祭 ࢮ ᨬ    祭 ண.
    ந樨   ப    ।,  ࠬ   祭   ࠡ뢠  "#"  "`".  ᨨ  訩 ਮ, 祬  楯.
    ᫥ 襭 ⮣,  ᣥ஢ ப 室 १ ⠭ ९ᨭ,  ᠭ .
     筮 ᨬ ⠭  ᪫⥫쭮  ப,   ४⨢ ९,  ந権, 砥 ᪮쪮 ᮡ 権,   ஢   ப, ᮤঠ ४⨢. ࢠ -  । ᨬ쭮 ⠭,   ந  ᫥ ᫮ "equ"  १饥 祭 ᢠ  ⠭ (ᬮ 2.3.2).  ⠪  -  ४⨢ "match",   ந  ᨬ, ᫥  ⮩ । ᮯ⠢   ࠧ殬.  ᢮⢠  ᯮ짮, ਬ,  ࠭ ᯨ᪮, ,ਬ,  ᮢ㯭 ।:

    list equ

    macro append item
     {
       match any, list \{ list equ list,item \}
       match , list \{ list equ item \}
     }

 ⠭ "list" 樠   祭,   "append"  ᯮ짮    㭪⮢  ᯨ, ࠧ  묨. ࢮ ᮯ⠢  ⮬  ந室, ⮫쪮 ᫨ 祭 ᯨ᪠  (ᬮ 2.3.6), ⠪ ࠧ   祭 -  ।饥  ⮩   㭪⮬,   . ஥ ᮯ⠢ ந室, ⮫쪮 ᫨ ᯨ᮪   ,  ⠪ ࠧ ᯨ᮪ ।  ᮤঠ騩 ⮫쪮   㭪. , 稭  ⮣ ᯨ᪠, "append 1" । "list equ 1",  "append 2", ᫥騩  , । "list equ 1,2".  ॡ ᯮ짮  ᯨ᮪  ࠬ  ஬ .    ᤥ אַ - ᫨ "foo"  ,   ப "foo list" ᨬ "list"  襫   ࠬ  , ᪮ ᨬ ⠭  ⮩ ⠤   ࠧ.  ⮩ 楫 ᭮ 뢠 㤮 ४⨢ "match":

    match params, list { foo params }

祭 "list", ᫨   ⮥, ᮮ⢥ 祢 ᫮ "params", ஥   ६ 樨 ப, 祭  䨣 ᪮,   ᮮ⢥⢥ 祭. , ᫨ "list"  祭 "1,2", ப, 㪠 , ᣥ ப, ᮤঠ "foo 1,2",   ன ⠭ ९ᨭ.
       ᮡ 砩 -  ९ ᮡࠥ ஢ ன ᨬ  몠  稥 (   ᥬ஬  । ⪨),  ⠭  ⮬   稢 ९ᨭ ࢮ ᨬ (  ᫨  ᨬ쭠 ⠭,  ࠧ뢠)  ᫨    룫廊 ⪮, ᮢ蠥 ⠭ ९ᨭ, 稭   ᫥ ⪨.    ४⨢ ९  ந樨 ᫥ ⮪, 筮   ४⨢, ࠡ뢠 ᥬ஬, ਬ:

    start: include 'start.inc'

 ᫨ ⪠  ६ ९ᨭ ࠧ蠥 (ਬ, ᫨  ᨬ쭮 ⠭ ⮥ 祭), ந室 ⮫쪮  ᨬ ⠭   ப.


2.4  ४⨢ ଠ஢

"format"  ᫥騬   䨪஬ ଠ   ଠ 뢮.  ४⨢    砫 . ଠ 뢮  㬮砭 -  ⮩  䠩,    ⠪ ࠭ ४⨢ "format binary".
    "use16"  "use32" 㪠뢠 ᥬ ஢ 16-  32- , ७ॣ ன  㬮砭  ࠭ ଠ 뢮. "use64" 砥 ஢    ० ஢ x86.
     ᠭ ࠧ ଠ 뢮  ᯥ묨   ४⨢.


2.4.1  MZ

⮡  ଠ 뢮 MZ, ᯮ ४⨢ "format MZ".  㬮砭   ⮣ ଠ 16-.
    "segment" ।  ᥣ,    ᫥ ⪠, 쨬 祭 㤥  ।塞 ᥣ. 樮쭮  ⮩ ४⨢  ᫥ "use16"  "use32", ⮡ 㪠 ⭮   ᥣ. 砫 ᥣ ஢  ࠣ (16 ).  ⪨, । ,   祭 ⭮⥫쭮 砫 ⮣ ᥣ.
    "entry" ⠭  室  ଠ MZ,    ᫥ 쭨  ( ᥣ, 稥  ᬥ饭  ᥣ)  窨 室.
    "stack" ⠭ ⥪  MZ.  ४⨢  ᫥ ᫮ ࠦ, 㪠뢠饥 ࠧ ⥪  ⮬᪮ ᮧ,  쭨  砫쭮 ⥪ ३, ᫨   ⠭ ⥪ . ᫨ ⥪  ।,  㤥 ᮧ  ࠧ஬  㬮砭  4096 .
    "heap"  ᫥騬   祭 । ᨬ ࠧ ⥫쭮   ࠣ (     ⥪   । ). ᯮ "heap 0", ⮡ ᥣ ⢮ ⮫쪮 ,  ணࠬ ⢨⥫쭮 㦭.


2.4.2  PE

⮡  ଠ 뢮 PE, ᯮ ४⨢ "format PE",    ᫥ ⥫ ன ଠ: ᯮ "console", "GUI"   "native", ⮡  楫 ⥬ (  ᫥ 祭  饩 窮, 㪠뢠饥  ⥬), "DLL" 砥 䠩 뢮   뢠 ⥪.   ᫥  "at"  ᫮ ࠦ, 㪠饥  ࠧ PE   樮쭮  "on"  ᫥饩   ப  窠, ᮤঠ饩  䠩, 롨饩  MZ  PE ணࠬ (᫨ 㪠 䠩   ଠ MZ,   ࠪ  ⮩  ᯮ塞 䠩    ଠ MZ).  㬮砭   ⮣ ଠ 32-. ਬ  ଠ PE  ᥬ ᢮⢠:

    format PE GUI 4.0 DLL at 7000000h on 'stub.exe'

    "section" ।  ᥪ,    ᫥ ப  窠, ।  ᥪ樨,    ᫥    䫠 ᥪ権.  䫠 ⠪: "code", "data", "readable", "writeable", "executable", "shareable", "discardable", "notpageable". 砫 ᥪ樨 ࠢ  ࠭ (4096 ). ਬ  ᨥ樨 PE:

    section '.text' code readable executable

  䫠 ⠪   ।   ᯥ樠 䨪஢  PE, ⬥騩  ᥪ  ᯥ樠 ,  䨪: "export", "import", "resource"  "fixups". ᫨ ᥪ 祭  ᮤঠ ஥ ᮢ,   ⮬᪨,    ।   ॡ.   ᮢ   ᣥ஢ ⮬᪨  䠩 ᮢ, ⮣  , ᠢ ᫥ 䨪 "resourse"  "from"   䠩  窠.    㢨 ਬ ᥪ権, ᮤঠ  ᯥ樠 :

    section '.reloc' data discardable fixups
    section '.rsrc' data readable resource from 'my.res'

"entry" ᮧ  室  PE,   ᫥ 祭 窨 室.
"stack" ⠭ ࠧ ⥪  PE,   ᫥ 祭 १ࢨ஭ ࠧ ⥪, 樮쭮  ᫥ ⤥ ⮩ 祭 砫 ⥪. ᫨ ⥪  ।,  ᢠ ࠧ  㬮砭, ࠢ 4096 .
    "heap" 롨ࠥ ࠧ ⥫쭮   PE,   ᫥ 祭  १ࢨ஢   , 樮쭮    祭  砫, ⤥ ⮩. ᫨ ⥫쭮   ।,  ⠢  㬮砭 ࠢ 65536 , ᫨  㪠  砫,   ⠭ ࠢ 0.
    "data" 稭 । ᯥ樠  PE,  ४⨢  ᫥   䨪஢  ("export", "import", "resource" 
"fixups")       PE.    ।  ᫥ ப  稢 ४⨢ "end data". ᫨ ࠭ । ஥ ᮢ,   ⮬᪨,    ।   ॡ.   ᠬ ⭮  ᠬ, ᫨  䨪஬ "resourse" ᫥  "from"   䠩  窠 -  ⮬ 砥    ⮣ 䠩 ᮢ.


2.4.3  COFF

⮡  COFF (Common Object File Format), ᯮ ४⨢ "format COFF"  "format MS COFF", ᫨   ᮧ ᪨ ᪨ 䠩 COFF.  㬮砭   ⮣ ଠ 32-. ⮡ ᮧ ⮢᪨ ଠ COFF  ⥪ x86-64, ᯮ ⠭ "format MS64 COFF",  ⮬ 砥 ⮬᪨ 㤥 ஢   ०.
    "section" ।  ᥪ,  ४⨢  ᫥ ப  窠, ।   ᥪ樨,    ᫥    䫠 ᥪ権.  䫠 ⠪: "code"  "data"   ਠ⮢ COFF, "readable", "writeable", "executable", "shareable", "discardable"  "notpageable" ⮫  ᮢ᪮ ਠ COFF.  㬮砭 ᥪ ஢   ᫮ ( ),  ᮢ⮢᪨ ਠ COFF  ஢  - -㣮    "align"  ᫥騬   祭 ࠢ ( ⥯     8192) । 䠣 ᥪ権.
    "extrn" । 譨 ᨬ,    ᫥  ᨬ  樮쭮  ࠧ, 㪠뢠騩 ࠧ , 祭 ⨬ ᨬ.  ᨬ ⠪  । ப  窠, ᮤঠ饩  譥 ᨬ   "as".  ਬ஢  譨 ᨬ:

    extrn exit
    extrn '__imp__MessageBoxA@16' as MessageBox:dword

    "public"  騩 ᨬ  饤㯭,    ᫥  ᨬ,   樮쭮  "as"  ப  窠, ᮤঠ ,   ᨬ 㤥 ⢨⥫  饤㯭.  ਬ஢  饤㯭 ᨬ:

    public main
    public start as '_start'


2.4.4  ELF

⮡  ଠ 뢮 ELF, ᯮ ४⨢ "format ELF".  㬮砭   ⮣ ଠ 32-. ⮡ ᮧ ଠ ELF  ⥪ x86-64, ᯮ ⠭ "format ELF",  ⮬ 砥 ⮬᪨ 㤥 ஢   ०.
    "section" ।  ᥪ,  ४⨢  ᫥ ப  窠, ।   ᥪ樨,    ᫥    䫠 "executable"  "writeable", 樮쭮 ⠪    "align"  ᫥騬   ᫮, ।騬 ࠢ ᥪ樨 (   ⥯ ), ᫨ ࠢ  㪠, ᯮ 祭  㬮砭, ஥ ࠢ 4  8,  ᨬ  ਠ ࠭ ଠ.
    "extrn"  "public"    祭  ᨭ⠪  ,   砥 ଠ COFF (ᠭ  ।饬 ࠣ).
    ⮡ ᮧ ᯮ塞 䠩, ਤন ४⨢ 롮 ଠ  ᫮ "executable".  ᯮ짮 ४⨢ "entry"  ᫥騬   祭, ⮡ ᮧ  室  ணࠬ.  㣮 ஭   㯭묨 ४⨢ "extrn"  "public".  ४⨢ "section"  ⮬ 砥  ᫥ ⮫쪮    䫠 ᥪ権  砫 ᥪ樨 㤥 ஢  ࠭ (4096 ). 㯭 䫠 ᥪ権 ⠪: "readable", "writable"  "executable".



Translate made by Paranoik


EOF